home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / pc_board / pcbss30.zip / BANK.ZIP / BANK.DEF < prev   
Text File  |  1992-11-23  |  5KB  |  149 lines

  1.  
  2.   include @ss_cfig@
  3.   include @ss_path@ "def\callhist.fil"
  4.  
  5.   FIELDS
  6.     Option    C    1   0    1  *
  7.     zline     C   78   0    0  *     "──────────────────────────────────────────────────────────────────────────────"
  8.     mins      C    3   0    0  %%9
  9.     max       C    5   0    0  *
  10.     xstr      C   50   0    0  *
  11.     emsg      C   50   0    0  *
  12.     bankMax   N    3   0    0  9  60
  13.   FIELDS
  14.  
  15. ;
  16. ;--------------------------------------------------------------------------
  17. ;--------------------------------------------------------------------------
  18. ;
  19.   beeps off                                     ;
  20.   flush_kb                                      ;
  21.   color     bright cyan black                   ;set crt colors
  22.   entry_min_attr  bright red black                    ;
  23.   entry_max_attr  bright blue black                   ;
  24.   entry_ans_attr  bright yellow black                 ;
  25.  
  26.   ;
  27.   ; open caller history file
  28.   ;
  29.   open 1 ssLogDir CALLHIST                    ;
  30.   if @file_stat@ != "*OK*"                    ;chk for err
  31.     create 1 HistFmt ssLogDir CALLHIST        ;env var pts to dir
  32.     if @file_stat@ != "*OK*"                  ;chk for err
  33.       text  "CANNOT CREATE CALLHIST FILE"     ;
  34.       goto AbortJob                           ;
  35.     endif                                     ;
  36.   endif                                       ;
  37.  
  38.   if ssCallLog == "Y"
  39.     log_msg   @user@ " accessed BankDoor"
  40.   endif
  41.  
  42.   ;
  43.   ; check the caller history file to see if this caller has been
  44.   ; in this door before.
  45.   ;
  46.   read 1 HistFmt                    ;read caller hist file for this caller
  47.   if @file_stat@ != "*OK*"          ;was it found?
  48.     goto Exit                       ;
  49.   endif                             ;
  50.  
  51. ;---------------------------------------------------------------------------
  52. ;---------------------------------------------------------------------------
  53. :Prompt
  54.   clearcrt
  55.   display  1 1 "@X0B""zline""@X07"
  56.   display  2 1 "@X1F                                   ssBank                                     @X07"
  57.   display  3 1 "@X0B""zline""@X07"
  58.   display  5 1 "                     @X0BD@X08 ... @X0BD@X03eposit time into Bank Account
  59.   display  6 1 "                     @X0BW@X08 ... @X0BW@X03ithdraw time from Bank Account
  60.   display  7 1 "                     @X0BE@X08 ... @X0BE@X03xit
  61.   display 10 1 "                          @X03Online time left@X08:   @X03" @minleft@ " mins"
  62.   display 11 1 "                           @X03Account Balance@X08: @X03" BankTime " mins"
  63.   display 13 1 "@X0B""zline""@X07"
  64.   set     Option
  65.   setmask Option "<DWEdwe>"
  66.   esc_chk ON                                      ;turn escape checking on
  67.   esc_to  Exit                                    ;set esc latch
  68.   accept  15 28  "Command (@X03ESC=abort@X0B) " Option
  69.   esc_to                                          ;reset esc latch
  70.   esc_chk OFF                                     ;turn escape checking OFF
  71.   ucase   Option
  72.   switch  Option
  73.     case  "D"
  74.       gosub StoreTime
  75.       break
  76.     case  "W"
  77.       gosub RecallTime
  78.       break
  79.     case  "E"
  80.       goto Exit
  81.   endswitch
  82.   goto Prompt
  83.  
  84. ;---------------------------------------------------------------------------
  85. ;---------------------------------------------------------------------------
  86. :StoreTime
  87.   if BankTime >= bankMax
  88.     set emsg "Your limit is already reached."
  89.     gosub Err
  90.   else
  91.     sub max bankMax BankTime
  92.     if max > @minleft@
  93.       set max @minleft@
  94.     endif
  95.     trim max
  96.     set xstr "Number of minutes to deposit (" max "=max) "
  97.     set mins
  98.     accept 15 20 xstr mins
  99.     if mins <= max
  100.       add BankTime BankTime mins
  101.       adjtime sub mins
  102.       write 1 HistFmt
  103.     else
  104.       set emsg "You can't deposit that much time."
  105.       gosub Err
  106.     endif
  107.   endif
  108.   return
  109.  
  110. ;---------------------------------------------------------------------------
  111. ;---------------------------------------------------------------------------
  112. :RecallTime
  113.   if BankTime <= 0
  114.     set emsg "You have no time on deposit."
  115.     gosub Err
  116.   else
  117.     set  max BankTime
  118.     trim max
  119.     set xstr "Number of minutes to withdraw (" max "=max) "
  120.     set mins
  121.     accept 15 20 xstr mins
  122.     if mins > BankTime
  123.       set emsg "You don't have that much time."
  124.       gosub Err
  125.     else
  126.       sub BankTime BankTime mins
  127.       adjtime add mins
  128.       write 1 HistFmt
  129.     endif
  130.   endif
  131.   return
  132.  
  133. ;---------------------------------------------------------------------------
  134. ;---------------------------------------------------------------------------
  135. Err:
  136.   esc_chk   ON
  137.   set       Option
  138.   setmask   Option "*"
  139.   displayc  17 emsg
  140.   accept    18 35 "Press <ESC>" Option
  141.   esc_chk   OFF
  142.   return
  143. ;---------------------------------------------------------------------------
  144. ;---------------------------------------------------------------------------
  145. :Exit
  146.   close 1
  147.   clearcrt
  148.   EXIT
  149.